package com.zdkj.subway.check.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import java.math.BigDecimal;
import java.util.Date;

//2-2-2、TVM票款差异分钱箱差异审核 SW_AU_TVM_BOX_AMOUNT_DIFFERENCE
@Data
public class SwAuTvmBoxAmountDifference {
    /**
     * 唯一标识
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    Integer id;
    /**
     * TVM票款差异审核表中的ID
     */
    Integer relationid;
    /**
     * 收入结算开始日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd" , timezone = "GMT+8")
    Date incomeSettleBeginTime;
    /**
     * 收入结算结束日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd" , timezone = "GMT+8")
    Date incomeSettleEndTime;
    /**
     * 收入结算单ID（关联车站收入结算的ID）
     */
    Integer incomeSettleId;
    /**
     * 根据钱箱类型，查找对应的TVM日清点详细表
     */
    Integer cashBoxRelationId;
    /**
     * 线路编码
     */
    String lineCode;
    /**
     * 车站编码
     */
    String stationCode;
    /**
     * TVM编号
     */
    String tvmCode;
    /**
     * 钱箱类型（字典）
     */
    String cashBoxType;
    /**
     * 钱箱编号
     */
    String cashBoxCode;
    /**
     * 卸载状态（字典）
     */
    String boxUninstallStatus;
    /**
     * 系统金额（分）
     */
    BigDecimal systemMoney;
    /**
     * 结账单据金额（分）
     */
    BigDecimal billOrderMoney;
    /**
     * SC系统清点金额
     */
    BigDecimal scSaleAmount;
    /**
     * SC数据卸载金额（分）
     */
    BigDecimal scUnloadAmount;
    /**
     * SC数据手工清出金额（分）
     */
    BigDecimal scHandOutAmount;
    /**
     * SC数据补币金额（分）
     */
    BigDecimal scSupplemntAmount;
    /**
     * 卸载显示金额（分）
     */
    BigDecimal unloadDisplayMoney;
    /**
     * 卸载实点金额（分）
     */
    BigDecimal actualMoney;
    /**
     * 补币金额（分）
     */
    BigDecimal supplementMoney;
    /**
     * 手工清出金额（分）
     */
    BigDecimal handOutMoney;
    //票款差异协查回馈卸载显示金额 用于最新的系统回馈金额
    BigDecimal replyUnloadDisplayMoney;
    /**
     * 票款差异协查回馈卸载实点金额（分）
     */
    BigDecimal replyActualMoney;
    /**
     * 票款差异协查回馈补币金额（分）
     */
    BigDecimal replySupplementMoney;
    /**
     * 票款差异协查回馈补币金额（分）
     */
    BigDecimal replyHandOutMoney;
    /**
     * 差异金额（分）初始数据根据结账单据金额和钱箱数据进行计算
     */
    BigDecimal diffMoney;
    /**
     * 收入日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date recordTime;
    /**
     * 核对数据来源
     */
    String dataSource;
    /**
     * 是否审核完成
     */
    String auditStatus;
    /**
     * 审核日期
     */
    String auditTime;
    /**
     * 协查状态
     */
    String assistInvestStatus;
    /**
     * 差异原因（字典）1
     */
    String diffReason;
    /**
     * 是否加入票款差异协查
     */
    String isAddAssist;
    /**
     * 是否加入层级差异协查
     */
    String isAddLevelAssist;
    /**
     * 创建人ID
     */
    Integer creatorId;
    /**
     * 创建人名称
     */
    String creatorName;
    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date createTime;

    //2021-01-23优化
    /**
     * 客值人员工号
     */
    String passengerJobNo;
    /**
     * 客值人员名称
     */
    String passengerJobName;

	 /**
     * 客值人员工号 清点人2工号 站务员
     */
    String attendancePersonJobNo;

    /**
     * 客值人员名称 清点人2工号 站务员
     */
    String attendancePersonName;
    /**
     * 更新人工号
     */
    String updateJobNo;
    /**
     * 更新人名称
     */
    String updateJobName;
    /**
     * 更新时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date updateTime;
    /**
     * 是否加入层级差异协查
     */
	String isAddReprotError;
    //是否是补提交状态
    String additionalRecordingStatus;
    String delFlag;
    /**
     * 作废状态：0未作废 1已作废
     */
    String invalidStatus;
    //审核人工号
	String auditPersonCode;
	//审核人名称
	String auditPersonName;

    /**
     * 修改原因备注
     */
    String reasonRemark;
}
